package com.kpf.springcloud.service;

import com.kpf.springcloud.pojo.PageResult;
import com.kpf.springcloud.pojo.KpfTopic;
import com.kpf.springcloud.vo.KpfTopicLikeAndCollectStatusVO;

import java.util.List;

/**
 * @author shiwen
 * @date 2021/3/1
 */
public interface IKpfTopicService extends IBaseService<KpfTopic> {

    /**
     * 获取首页帖子列表 - 分页
     */
    PageResult getTopicList(int pageNum, int pageSize, String title);

    /**
     * 根据id获取topic内容
     *
     * @return
     */
    KpfTopic getById();

    /**
     * 设置topic进redis
     *
     * @param topicId
     */
    void setTopicId(int topicId);

    /**
     * 发帖接口
     *
     * @param title
     * @param content
     * @param topicMsg
     */
    void editTopic(String title, String content, String topicMsg);

    /**
     * 根据用户账号和帖子id判断点赞和收藏状态
     *
     * @param topicId
     * @return
     */
    KpfTopicLikeAndCollectStatusVO getAllStatusByTopicId(int topicId);

    /**
     * 根据用户id获取所有的帖子内容
     */
    List<KpfTopic> getTopicListByUserId();

    /**
     * 根据帖子id删除帖子, 需要判断用户是否为管理员权限, 否则无法调用
     *
     * @param topicId
     */
    void deleteTopicById(int topicId);

    /**
     * 初始化帖子权重
     */
    void initTopicSortNo();

    /**
     * 初始化帖子访问数据
     */
    void initTopicVisitData();

}